1
基於狀態的資料流邏輯
AI037Lesson 2
00:00

在 C++ 中,資料流不僅是管道;它們是 具有狀態的實體。評估一個 istream 物件,例如 std::cin 作為布林條件,讓我們的程式能適應使用者輸入或外部檔案的不可預測節奏。

1. 資料流的真值

當我們使用 if (std::cin >> val)時,該表達式會傳回 true 僅當資料流仍有效時才成立。若遇到 結尾檔案(EOF) 或遇到無效的資料類型,就會轉為「失敗」狀態,並傳回 false

2. 鎖定點與探測器

為了追蹤資料變動,我們定義 currVal (我們的狀態鎖定點)以及 val (我們的主動探測器)。邏輯取決於將即將到來的探測器與鎖定點進行比較。一旦不匹配,就會觸發「狀態改變」報告,從而有效實現以最少記憶體處理無限資料。

cin >> currValwhile(cin >> val)錯誤EOF / 失敗

3. 多次讀取操作

C++ 允許串接資料流讀取: cin >> i >> j;。這會將第一個值讀入 i ,第二個值則讀入 j,提供了一種簡潔的方式來讀取複雜的記錄。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>